今天來聊聊關聯式資料庫。
為什麼要用關聯式資料庫?
在非關聯式資料庫中,常常會看到一種困擾的情況是,看到多筆資料重複的現象。
這樣除了有些凌亂之外,若是資料有打錯,會導致資料不一致的情形。
舉例來說:在學生選課表中,同樣的課名AAA出現太多次,有一次登打錯誤打成AA,會導致資料不一致。
因此我們需要將資料表分割成 「多個不重複的資料表」,
再利用關聯式資料庫的方法建立資料表的關聯。
關聯式資料庫
-
基本概念是以表格(tables)的形式來儲存資料,並允許不同表格之間建立關聯。
-
將資料依照性質的不同存放在不同表格,表格與表格之間則以 「共同的欄位」 來進行連結。
-
表格內所有屬性值都是基元值(atomic value)
-
目的 :
- 節省重複輸入時間與空間。
- 確保資料的一致性、完整性。
基本概念和特點:
- 關聯(Relation):
- 在SQL Server內也稱為表格(Table)。
- 是儲存資料的基本單位。每個表格都有一個唯一的名稱。
- 元組(Tuple):
- 在SQL Server內也稱為橫列(Row)。
- 代表資料庫中的一個實體或事物的特定實例。
- 屬性 (Attirbute):
- 在SQL Server內也稱為直欄(Column)。
- 每個列都有一個唯一的名稱和一個指定的資料類型。
- 代表資料的一個特定屬性或特徵。
- 主鍵(Primary Key):
- 是表格中的一個或多個列,其值可以用來識別。
- 每個表只有一個主鍵,且不可以為空值。
- 外鍵(Foreign Key):
- 用來建立資料表之間關係。
- 外鍵需和另一個資料表的主鍵相同,使不同的表格可以建立關聯。
- 正規化(Normalization):
- 是一個過程,用於減少資料重複和確保資料的完整性。
- 將資料分解成多個表格並建立關聯,以達到正規化。
- SQL(Structured Query Language):
明天見啦,先繼續吃烤肉